package com.ruoyi.ruoyiqywechat.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 权益配置对象 privilege_config
 *
 * @author 好六
 * @date 2025-10-10
 */
public class PrivilegeConfig extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 套餐ID */
    @Excel(name = "套餐ID")
    private Long planId;

    /** 权益类型：video_extraction-视频号提取, popular_voiceover-热门配音, text_extraction-提取文字, sensitive_word_detection-敏感词检测, article_creation-文案创作, content_rewriting-内容改写 */
    @Excel(name = "权益类型：video_extraction-视频号提取, popular_voiceover-热门配音, text_extraction-提取文字, sensitive_word_detection-敏感词检测, article_creation-文案创作, content_rewriting-内容改写")
    private String privilegeType;

    /** 最大次数（NULL表示无限次） */
    @Excel(name = "最大次数", readConverterExp = "N=ULL表示无限次")
    private Long maxCount;
    /**
     * 普通用户次数(NULL表示无限次)
     */
    @Excel(name = "普通用户次数", readConverterExp = "N=ULL表示无限次")
    private Long ordinary;

    /** 字数限制 */
    @Excel(name = "字数限制")
    private Long wordLimit;
    /** 普通用户字数限制 */
    @Excel(name = "普通用户字数限制")
    private Long ordinaryWordLimit;

    /** 重置周期：MONTHLY-每月，YEARLY-每年，NEVER-从不重置 */
    @Excel(name = "重置周期：MONTHLY-每月，YEARLY-每年，NEVER-从不重置")
    private String resetCycle;

    public Long getOrdinaryWordLimit() {
        return ordinaryWordLimit;
    }

    public void setOrdinaryWordLimit(Long ordinaryWordLimit) {
        this.ordinaryWordLimit = ordinaryWordLimit;
    }

    public Long getOrdinary() {
        return ordinary;
    }

    public void setOrdinary(Long ordinary) {
        this.ordinary = ordinary;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setPlanId(Long planId)
    {
        this.planId = planId;
    }

    public Long getPlanId()
    {
        return planId;
    }

    public void setPrivilegeType(String privilegeType)
    {
        this.privilegeType = privilegeType;
    }

    public String getPrivilegeType()
    {
        return privilegeType;
    }

    public void setMaxCount(Long maxCount)
    {
        this.maxCount = maxCount;
    }

    public Long getMaxCount()
    {
        return maxCount;
    }

    public void setWordLimit(Long wordLimit)
    {
        this.wordLimit = wordLimit;
    }

    public Long getWordLimit()
    {
        return wordLimit;
    }

    public void setResetCycle(String resetCycle)
    {
        this.resetCycle = resetCycle;
    }

    public String getResetCycle()
    {
        return resetCycle;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("planId", getPlanId())
            .append("privilegeType", getPrivilegeType())
            .append("maxCount", getMaxCount())
            .append("wordLimit", getWordLimit())
            .append("resetCycle", getResetCycle())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
